package com.zp.drug.entity.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.zp.common.core.entity.BaseEntity;
import com.zp.common.excel.annotation.ExcelDictFormat;
import com.zp.common.excel.convert.ExcelDictConvert;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;


/**
 * 药品盘点表视图对象
 *
 * @author zhang peng
 * @ date 2024-06-14
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ExcelIgnoreUnannotated
public class DrugInventoryCheckVo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private String id;

    /**
     * 盘点日期
     */
    @ExcelProperty(value = "盘点日期")
    private Date checkYearMonth;

    /**
     * 盘点号
     */
    @ExcelProperty(value = "盘点号")
    private String inventoryNo;

    /**
     * 保存标志(null:生成;0:暂存;1:最准保存)
     */
    @ExcelProperty(value = "保存标志(0,生成;1,暂存)")
    private String saveType;

    /**
     * 序号
     */
    @ExcelProperty(value = "序号")
    private Integer itemNo;

    /**
     * 库存量主键drug_stock表id
     */
    @ExcelProperty(value = "库存量主键drug_stock表id")
    private String stockId;

    /**
     * 药品名称
     */
    private String drugName;

    /**
     * 药品编码
     */
    @ExcelProperty(value = "药品编码")
    private String drugCode;

    /**
     * 药品类别：西药、中成药、中草药等
     */
    @ExcelProperty(value = "药品类别：西药、中成药、中草药等")
    private String drugClass;

    /**
     * drug_info表id
     */
    @ExcelProperty(value = "drug_info表id")
    private String drugInfoId;

    /**
     * 库存单位
     */
    @ExcelProperty(value = "库存单位")
    private String storageId;

    /**
     * 包装数量
     */
    @ExcelProperty(value = "包装数量")
    private Integer packageNum;

    /**
     * 包装规格
     */
    @ExcelProperty(value = "包装规格")
    private String packageSpec;

    /**
     * 包装单位
     */
    @ExcelProperty(value = "包装单位")
    private String packageUnits;

    /**
     * 进货价
     */
    @ExcelProperty(value = "进货价")
    private BigDecimal purchasePrice;

    /**
     * 批发价格
     */
    @ExcelProperty(value = "批发价格")
    private BigDecimal tradePrice;

    /**
     * 零售价格
     */
    @ExcelProperty(value = "零售价格")
    private BigDecimal retailPrice;

    /**
     * 批号
     */
    @ExcelProperty(value = "批号")
    private String batchNo;

    /**
     * 有效期
     */
    @ExcelProperty(value = "有效期")
    private Date expireDate;

    /**
     * 帐面数量(小包装)
     */
    @ExcelProperty(value = "帐面数量(小包装)")
    private Integer accountQuantity;

    /**
     * 实盘数量(小包装)
     */
    @ExcelProperty(value = "实盘数量(小包装)")
    private Integer actualQuantity;

    /**
     * 大包装库存量
     */
    @ExcelProperty(value = "大包装库存量")
    private Integer maxQuantity;

    /**
     * 小包装库存量
     */
    @ExcelProperty(value = "小包装库存量")
    private Integer minQuantity;

    /**
     * 机构id
     */
    @ExcelProperty(value = "机构id")
    private String orgId;

    /**
     * 是否实盘填充Y是，N否
     */
    @ExcelProperty(value = "是否实盘填充Y是，N否", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String solidFill;

    /**
     * 预留2
     */
    @ExcelProperty(value = "预留2")
    private String reserve2;

    /**
     * 预留3
     */
    @ExcelProperty(value = "预留3")
    private String reserve3;

    /**
     * 预留4
     */
    @ExcelProperty(value = "预留4")
    private String reserve4;

    /**
     * 最小单位单位
     */
    @ExcelProperty(value = "最小单位单位")
    private String minUnits;

    /**
     * 最小单位规格
     */
    @ExcelProperty(value = "最小单位规格")
    private String minSpec;

    /**
     * 账面额
     */
    @ExcelProperty(value = "账面额")
    private BigDecimal accountMoney;

    /**
     * 实盘额
     */
    @ExcelProperty(value = "实盘额")
    private BigDecimal actualMoney;

    /**
     * 账面额销售
     */
    @ExcelProperty(value = "账面额销售")
    private BigDecimal accountMoneySales;

    /**
     * 实盘额销售
     */
    @ExcelProperty(value = "实盘额销售")
    private BigDecimal actualMoneySales;

    /**
     * 盈亏额销售
     */
    @ExcelProperty(value = "盈亏额销售")
    private BigDecimal profitMoneySales;

    /**
     * 盈亏数
     */
    private Integer profitQuantity;


    /**
     * 盈亏额进价
     */
    private BigDecimal profitMoney;

    /**
     * 盘点结束时间
     */
    private Date checkYearMonthEnd;

    private String firmName;

    private String packageUnitName;

    private String minUnitsName;

    /**
     * 小包装进货价
     */
    private BigDecimal tradePriceMin;

    /**
     * 小包装零售价
     */
    private BigDecimal retailPriceMin;


}
